<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>date_format</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
<link rel="home" href="index.html" title="Smarty マニュアル">
<link rel="up" href="language.modifiers.html" title="Chapter 5. 変数の修飾子">
<link rel="prev" href="language.modifier.count.words.html" title="count_words">
<link rel="next" href="language.modifier.default.html" title="default">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">date_format</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="language.modifier.count.words.html">Prev</a> </td>
<th width="60%" align="center">Chapter 5. 変数の修飾子</th>
<td width="20%" align="right"> <a accesskey="n" href="language.modifier.default.html">Next</a>
</td>
</tr>
</table>
<hr>
</div>
<div class="sect1" title="date_format">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="language.modifier.date.format"></a>date_format</h2></div></div></div>
<p>
     日付と時間を
     <a class="ulink" href="http://php.net/strftime" target="_top"><code class="varname">strftime()</code></a>
     のフォーマットに基づいて整形します。日付を Unix
     <a class="ulink" href="http://php.net/function.time" target="_top">タイムスタンプ</a>
     や MySQL タイムスタンプ、そして月・日・年で構成された
     (PHP の <a class="ulink" href="http://php.net/strtotime" target="_top"><code class="varname">strtotime()</code></a>
     でパース可能な) 文字列として変数に割り当てる事ができます。デザイナーは、
     <code class="varname">date_format</code> を使用することで日付の書式設定を自由にコントロールできます。
     <code class="varname">date_format</code> に渡した日付が空で
     第２パラメータが渡された場合、その日付をフォーマットします。
   </p>
<div class="informaltable"><table border="1">
<colgroup>
<col align="center">
<col align="center">
<col align="center">
<col align="center">
<col>
</colgroup>
<thead><tr>
<th align="center">パラメータの位置</th>
<th align="center">型</th>
<th align="center">必須</th>
<th align="center">デフォルト</th>
<th>概要</th>
</tr></thead>
<tbody>
<tr>
<td align="center">1</td>
<td align="center">string</td>
<td align="center">No</td>
<td align="center">%b %e, %Y</td>
<td>日付の表示フォーマット</td>
</tr>
<tr>
<td align="center">2</td>
<td align="center">string</td>
<td align="center">No</td>
<td align="center">n/a</td>
<td>入力が空のときのデフォルトの日付</td>
</tr>
</tbody>
</table></div>
<p>
   </p>
<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">Note</h3>
<p>
     Smarty-2.6.10 以降、<code class="varname">date_format</code> に渡された数値は
     <span class="emphasis"><em>常に</em></span> (MySQL タイムスタンプは例外です。以下を参照してください)
     Unix タイムスタンプとして解釈されるようになりました。
    </p>
<p>
     Smarty-2.6.10 より前は、PHP の
     <code class="varname">strtotime()</code> がパース可能な数値文字列
     (<code class="literal">YYYYMMDD</code> のような形式) は、
     タイムスタンプではなく日付文字列として解釈されることもあります
     (<code class="varname">strtotime()</code> の実装に依存します)。
    </p>
<p>
     唯一の例外は、mysql タイムスタンプです。
     これは数値のみで、文字数は14文字 ("YYYYMMDDHHMMSS") です。
     mysql タイムスタンプは unix タイムスタンプより優先されます。 
    </p>
</div>
<p>
      </p>
<div class="note" title="プログラマーズノート" style="margin-left: 0.5in; margin-right: 0.5in;">
<h3 class="title">プログラマーズノート</h3>
<p>
     <code class="varname">date_format</code> は、本質的には PHP の
     <a class="ulink" href="http://php.net/strftime" target="_top"><code class="varname">strftime()</code></a>
     関数のラッパーです。PHP をコンパイルしたシステム上の
     <a class="ulink" href="http://php.net/strftime" target="_top"><code class="varname">strftime()</code></a>
     の実装によっては、利用可能な変換指定子が多少変わる場合があります。
     有効な指定子の一覧は、システムの man ページを参照してください。
     Windows 上でも一部の指定子をエミュレートしており、%D, %e, %h, %l, %n, 
     %r, %R, %t, %T が使用できます。
    </p>
</div>
<p>
  </p>
<div class="example">
<a name="id2759485"></a><p class="title"><b>Example 5.8. date_format</b></p>
<div class="example-contents">
<pre class="programlisting">

&lt;?php

$config['date'] = '%I:%M %p';
$config['time'] = '%H:%M:%S';
$smarty-&gt;assign('config', $config);
$smarty-&gt;assign('yesterday', strtotime('-1 day'));

?&gt;

   </pre>
<p>
    このテンプレートでは、<a class="link" href="language.variables.smarty.html#language.variables.smarty.now" title="{$smarty.now}">
    <em class="parameter"><code>$smarty.now</code></em></a> を使用して現在時刻を取得しています。
   </p>
<pre class="programlisting">

{$smarty.now|date_format}
{$smarty.now|date_format:"%D"}
{$smarty.now|date_format:$config.date}
{$yesterday|date_format}
{$yesterday|date_format:"%A, %B %e, %Y"}
{$yesterday|date_format:$config.time}

   </pre>
<p>
    出力
   </p>
<pre class="screen">

Jan 1, 2022
01/01/22
02:33 pm
Dec 31, 2021
Monday, December 1, 2021
14:33:00

   </pre>
</div>
</div>
<br class="example-break"><p>

  <span class="command"><strong>date_format</strong></span> の変換指定子
   </p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem"><p>
     %a - 現在のロケールに基づく短縮された曜日の名前
    </p></li>
<li class="listitem"><p>
     %A - 現在のロケールに基づく完全な曜日の名前
    </p></li>
<li class="listitem"><p>
     %b - 現在のロケールに基づく短縮された月の名前
    </p></li>
<li class="listitem"><p>
     %B - 現在のロケールに基づく完全な月の名前
    </p></li>
<li class="listitem"><p>
     %c - 現在のロケールに基づく適当な日付と時間の表現
    </p></li>
<li class="listitem"><p>
     %C - 世紀(年を100で割り、整数に丸めたもの。00から99)
    </p></li>
<li class="listitem"><p>
     %d - 10進数の日付(01から31)
    </p></li>
<li class="listitem"><p>
     %D - %m/%d/%yと同じ
    </p></li>
<li class="listitem"><p>
     %e - 月単位の日付を10進数で表したもの。日付が1桁の場合は、前に空白を一つ付ける。('1'から'31')
    </p></li>
<li class="listitem"><p>
     %g - 西暦の下二桁 [00,99]
    </p></li>
<li class="listitem"><p>
     %G - 西暦 [0000,9999]
    </p></li>
<li class="listitem"><p>
     %h - %bと同じ。
    </p></li>
<li class="listitem"><p>
     %H - 時間を24時間表示の10進数で(00から23まで)
    </p></li>
<li class="listitem"><p>
     %I - 時間を12時間表示の10進数で(01から12までの範囲)
    </p></li>
<li class="listitem"><p>
     %j - 年間での日付を10進数で表現 (001から366)
    </p></li>
<li class="listitem"><p>
     %k - 24時間表示の時間の一桁目に空白を入れる ( 0 から 23までの範囲)
    </p></li>
<li class="listitem"><p>
     %l - 12時間表示の時間の一桁目に空白を入れる ( 1 から 12までの範囲)
    </p></li>
<li class="listitem"><p>
     %m - 月を10進数で表現 (01から12)
    </p></li>
<li class="listitem"><p>
     %M - 分を10進数で表現
    </p></li>
<li class="listitem"><p>
     %n - 改行文字
    </p></li>
<li class="listitem"><p>
     %p - 指定した時間により `am' または `pm' 、または 現在のロケールに対応した文字列
    </p></li>
<li class="listitem"><p>
     %r - a.m.およびp.m.表記で表した時間
    </p></li>
<li class="listitem"><p>
     %R - 24時間表記で表した時間
    </p></li>
<li class="listitem"><p>
     %S - 10進数で表した秒
    </p></li>
<li class="listitem"><p>
     %t - タブ文字
    </p></li>
<li class="listitem"><p>
     %T - 現在の時間。%H:%M:%Sに等しい。
    </p></li>
<li class="listitem"><p>
     %u - 10進数表記の曜日で[1,7]の範囲。1が月曜日。
    </p></li>
<li class="listitem"><p>
     %U - 年間で何番目の週であるかを 10 進数で表現。年間で最初の日曜を最初の週の最初の日として数えます。
    </p></li>
<li class="listitem"><p>
     %V - ISO 8601:1988で規定された現在の年の週番号の10進数表現で 01から53までの範囲となります。
     1は最初の週でその週は現在の年に 最低4日はあります。週は月曜日から始まります。
    </p></li>
<li class="listitem"><p>
     %w - 曜日を10進数で表現。日曜は0になります。
    </p></li>
<li class="listitem"><p>
     %W - 現在の年で何番目の週であるかを10進数で表現。 年間で最初の月曜を最初の週の最初の日として数えます。
    </p></li>
<li class="listitem"><p>
     %x - 時間を除いた日付を現在のロケールに基づき表現します。
    </p></li>
<li class="listitem"><p>
     %X - 日付を除いた時間を現在のロケールに基づき表現します。
    </p></li>
<li class="listitem"><p>
     %y - 世紀の部分を除いた年を10進数として表現。(00から99までの範囲)
    </p></li>
<li class="listitem"><p>
     %Y - 世紀を含む年を10進数で表現
    </p></li>
<li class="listitem"><p>
     %Z - タイムゾーンまたはその名前または短縮形
    </p></li>
<li class="listitem"><p>
     %% - 文字リテラル`%'
    </p></li>
</ul></div>
<p>

  </p>
<p>
   <a class="link" href="language.variables.smarty.html#language.variables.smarty.now" title="{$smarty.now}"><em class="parameter"><code>$smarty.now</code></em></a>、
   <a class="ulink" href="http://php.net/strftime" target="_top"><code class="varname">strftime()</code></a>、
   <a class="link" href="language.function.html.select.date.html" title="{html_select_date}"><code class="varname">{html_select_date}</code></a>
   および <a class="link" href="tips.dates.html" title="日付">日付に関するヒント</a> のページも参照してください。
  </p>
</div>
<div class="navfooter">
<hr>
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="language.modifier.count.words.html">Prev</a> </td>
<td width="20%" align="center"><a accesskey="u" href="language.modifiers.html">Up</a></td>
<td width="40%" align="right"> <a accesskey="n" href="language.modifier.default.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">count_words </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> default</td>
</tr>
</table>
</div>
</body>
</html>
